home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b8.d64
/
circle2.l
< prev
next >
Wrap
Text File
|
2007-02-28
|
1KB
|
59 lines
0010 // IMPROVED CIRCLE
0020 SETGRAPHIC 0
0030 HIDETURTLE
0040 FULLSCREEN
0050 PENCOLOR 1
0060 BACKGROUND 0
0070 CLEAR
0080 BORDER 15
0090 FOR RADIUS:=10 TO 100 STEP 10 DO
0100 AT'X0:=119
0110 AT'Y0:=100
0120 CIRCLE(RADIUS,AT'X0,AT'Y0)
0130 ENDFOR RADIUS
0140 END
0150 PROC CIRCLE(RADIUS,X0,Y0) CLOSED
0160 // DRAW CIRCLE OF GIVEN RADIUS
0170 // CENTERED AT X0, Y0
0180 // J. MICHENER ALGORITHM
0190 X:=0; Y:=RADIUS
0200 D:=3-2*RADIUS
0210 WHILE X<Y DO
0220 PLOT'SYM'POINTS(X,Y,X0,Y0)
0230 IF D<0 THEN
0240 D:=D+4*X+6
0250 ELSE
0260 D:=D+4*(X-Y)+10
0270 Y:=Y-1
0280 ENDIF
0290 X:=X+1
0300 ENDWHILE
0310 IF X=Y THEN PLOT'SYM'POINTS(X,Y,X0,Y0)
0320 ENDPROC CIRCLE
0330 PROC PLOT'SYM'POINTS(X,Y,X0,Y0) CLOSED
0340 XX:=X; YY:=Y
0350 XY:=Y; YX:=X
0360 ADJUST(X0,Y0)
0370 ADJUST(XX,YY)
0380 ADJUST(XY,YX)
0390 PLOT X0+XX,Y0+YY
0400 PLOT X0+XY,Y0+YX
0410 PLOT X0+XX,Y0-YY
0420 PLOT X0+XY,Y0-YX
0430 PLOT X0-XX,Y0-YY
0440 PLOT X0-XY,Y0-YX
0450 PLOT X0-XX,Y0+YY
0460 PLOT X0-XY,Y0+YX
0470 ENDPROC PLOT'SYM'POINTS
0480 PROC ADJUST(REF X,REF Y) CLOSED
0490 SCRUNCH:=1.34
0500 // NOTE: USING A SCRUNCH FACTOR
0510 // CORRECTS THE DIFFERENCE IN
0520 // VERTICAL AND HORIZONTAL UNITS
0530 //
0540 // MAX X IS REDUCED TO 238
0550 // HORIZONTAL CENTER IS 119
0560 //
0570 X:=SCRUNCH*X
0580 ENDPROC ADJUST